from abc import ABC, abstractmethod
from typing import Dict, Any, Union
from fastapi.responses import JSONResponse

class BaseProvider(ABC):
    @abstractmethod
    async def process_image_task(
        self,
        image_bytes: bytes,
        image_filename: str,
        prompt: str,
        model: str,
        n: int,
        size: str
    ) -> JSONResponse:
        pass

    @abstractmethod
    async def get_models(self) -> JSONResponse:
        pass
